'''RDD数据计算_sortBy
sortBy算子：对RDD数据进行排序；
语法：rdd.sortBy(func, ascending=False, numPartitions=1)
    func: (T) -> U
    ascending True升序  False降序
    numPartitions: 用多少分区排序          '''

from pyspark import SparkConf, SparkContext
# 使用os 配置python安装位置， 帮助spark找到python;
import os
os.environ['PYSPARK_PYTHON'] = 'D:\\yfxdeve\\python\Python39\\python.exe'

conf = SparkConf().setMaster("local[*]").setAppName("test_park")
sc = SparkContext(conf=conf)

# 准备一个RDD
rdd1 = sc.parallelize([('java', 5), ('python', 3), ('javaScript', 7), ('mySql', 6)])
print(rdd1.collect())
# 根据每门语言的 sort值降序排序； x[1] 获取数值；
rdd2 = rdd1.sortBy(lambda x: x[1], ascending=False, numPartitions=1)
print(rdd2.collect()) # 排序结果 [('javaScript', 7), ('mySql', 6), ('java', 5), ('python', 3)]


# 关闭
sc.stop()